package com.cy.embeddingdemo.util;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class PDFReader {

    public static void main(String[] args) {
        String folder = "C:\\数据\\2023";
        extractPDFContents(folder);




    }


    public static Integer count = 0;
    /**
     * 遍历指定路径下的所有PDF文件，并提取内容存放到列表中
     * @param directoryPath 要遍历的目录路径
     * @return 包含每个PDF文件内容的列表
     */
    public static void extractPDFContents(String directoryPath) {

         File directory = new File(directoryPath);



        // 遍历目录下的所有文件和子目录
        File[] files = directory.listFiles();
        if (files != null) {
            for (File file : files) {
                // 如果是文件且扩展名是.pdf，则提取内容
                if (file.isFile() && file.getName().toLowerCase().endsWith(".pdf")) {
                    extractPDFContent(file.getAbsolutePath());
                    count++;
                    System.out.println("总量：" + count);
                }
                // 如果是目录，则递归遍历
                else if (file.isDirectory()) {
                    extractPDFContents(file.getAbsolutePath());
                }
            }
        }
    }

    /**
     * 提取单个PDF文件的内容
     * @param filePath PDF文件的路径
     * @return PDF文件的内容
     */
    private static void extractPDFContent(String filePath) {
        try (PDDocument document = PDDocument.load(new File(filePath))) {
            PDFTextStripper stripper = new PDFTextStripper();
            String content = stripper.getText(document);
            System.out.println(content);


        } catch (IOException e) {
            System.err.println("读取PDF文件时出错: " + filePath);
            e.printStackTrace();
        }
     }
}